// pages/test-mode/test-mode.js
var util = require("../../utils/util");
import Dialog from '../../miniprogram_npm/@vant/weapp/dialog/dialog';
Page({
  /**
   * 页面的初始数据
   */
  data: {
    // 总的数据
    list: [],
    // 倒计时总秒数
    time: 5 * 60,
    // 当前题的索引
    idx: 0,
    // 百分比
    timer: 100,
    // 用户选择的答案
    result: [],
    // 
    show: false,
    // 请求多少数据
    pageSize: 20,
    // 当前是什么模式
    mode: "",
    // 用户选择的所有问题的答案
    userAswers: {},
    // 前台和后台的答案相比color的赋值
    color: null,
    // 成功总个数
    count: 0,
    isStop: false
  },
  // 倒计时
  getTime() {
    var timeH = Math.round(this.data.time);
    var timer = setInterval(_ => {
      timeH--;
      this.setData({
        time: `${util.formatNumber(Math.floor((timeH) / 60 % 60))}:${util.formatNumber(Math.floor(timeH % 60))}`,
        timer: ((timeH / Math.round(5 * 60)) * 100).toFixed(0)
      })
      if (timeH <= 0 || this.data.isStop) {
        clearInterval(timer);
        timer = null;
      }
      if (timeH == 0) {
        Dialog.alert({
          title: '考试成绩',
          message: '您答题超时',
          theme: 'round-button',
        });
        timer = null;
      }
    }, 1000)

  },

  // 选中的复选框result
  onChange(event) {
    this.setData({
      result: event.detail,
    });
  },
  // 点击打开
  showPopup() {
    this.setData({ show: true });
  },

  // 点击关闭
  onClose() {
    this.setData({ show: false });
  },

  // 转换options   是json字符串转json对象
  toSwitch(options) {
    return options.map((item, idx) => {
      return {
        ...item, options: JSON.parse(item.options)
      }
    })
  },

  // 上一题事件
  handlePrev(event) {
    this.isAnswer();
    this.setData({
      idx: this.data.idx - 1,
      result: JSON.parse(this.data.userAswers[this.data.idx - 1])
    })
  },

  //判断答案
  isAnswer(event) {
    // result用户选择的答案
    let result = JSON.stringify(this.data.result);
    // result用户选择的答案对象模式  key=value
    let userAswers = this.data.userAswers;
    userAswers[this.data.idx] = result
    this.setData({
      userAswers,
    })
    if (this.data.mode == "exam") {
      // 判断用户输入的userAswers的长度
      if (JSON.parse(this.data.userAswers[this.data.idx]).sort().length) {
        // 判断用户输入的userAswers和总数据的字段answers是否相等
        if (JSON.parse(this.data.userAswers[this.data.idx]).join('') == JSON.parse(this.data.list[this.data.idx].answers).join('')) {
          this.data.list[this.data.idx].ColorList = '#07c160'
          this.setData({
            count: this.data.count + 1
          })
        } else {
          this.data.list[this.data.idx].ColorList = '#ee0a24'
        }
      } else {
        this.data.list[this.data.idx].ColorList = '#999'
      }
      console.log()
      this.setData({
        list: this.data.list
      })
    }
  },

  // 下一题事件
  handleNext(event) {
    this.isAnswer()

    this.setData({
      idx: this.data.idx + 1,
      result: []
    })
  },

  // 点击某一道题就跳到这一题
  onJump(event) {
    let currentUser = JSON.parse(this.data.userAswers[event.target.dataset.index])
    this.setData({
      idx: event.target.dataset.index,
      result: currentUser ? currentUser : []
    })
  },

  //交卷事件
  handleSure() {
    this.setData({
      isStop: true
    })
    Dialog.alert({
      title: '考试成绩',
      message: '您的用时为' + this.data.time + '您的得分为' + this.data.count * (100 / this.data.pageSize) + "分",
      theme: 'round-button',
    });
  },

  getList(options) {
    wx.request({
      url: 'http://192.168.43.94:2345/questions/randList',
      data: {
        pageSize: this.data.pageSize
      },
      success: res => {
        for (let i = 0; i < res.data.data.length; i++) {
          res.data.data[i].ColorList = '#999'
        }
        this.setData({
          list: this.toSwitch(res.data.data),
          time: "05:00",
          mode: options.mode
        })
      }
    })
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    this.getList(options);
    this.getTime();
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {
    this.setData({
      isStop: true
    })
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})


// class="{{idx==index?color.blue:userAswers[index]?(list[idx].answers==userAswers[index]?color.green:color.red):''}}"